The originally filed specification for the present application included Appendices A-C, which contained paper printouts of several computer program listings and an output file. Two compacts discs containing electronic text copies of the computer program listings and output file of Appendices A-C have been submitted for the present application. These electronic copies of Appendices A-C have been labeled with the appropriate identification for this application, and one of the compact discs has been labeled xe2x80x9cCopy 1,xe2x80x9d while the other has been labeled xe2x80x9cCopy 2.xe2x80x9d The compact disc labeled xe2x80x9cCopy 2xe2x80x9d is identical to the one labeled xe2x80x9cCopy 1,xe2x80x9d and both compact discs are specifically incorporated herein by reference.
Each of the submitted compact discs is formatted for a PC type workstation with an MS-Windows based operating system, and includes the serial label number of 011129xe2x80x941352. The following is a list of the folders and files on each of the two submitted compact discs:
Folderxe2x80x94Appendix A
Filexe2x80x94buffer_mgmt.cc.txt (Size: 9 KB; Dated: Nov. 29, 2001)
Folderxe2x80x94Appendix B
Filexe2x80x94VoIP Output File.txt (Size: 7 KB; Dated: Nov. 29, 2001)
Folderxe2x80x94Appendix C
Filexe2x80x94buffer.h.txt (Size: 7KB; Dated: Nov. 29, 2001)
Filexe2x80x94voicebuffer.cc.txt (Size: 13 KB; Dated: Nov. 29, 2001)
Filexe2x80x94voicebuffer.h.txt (Size: 3 KB; Dated: Nov. 29, 2001)
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
A. Field of the Invention
This invention relates to the field of telecommunications and more specifically to a method and apparatus for choosing buffer size and error correction coding for real time communication over packet networks.
B. Description of Related Art and Advantages of the Invention
Real time communications such as audio or video can be encoded using various compression techniques. The encoded information can then be placed in data packets with time and sequence information and transported via non-guaranteed Quality of Service (QoS) packet networks. Non-guaranteed packet switched networks include a Local Area Network (LAN), Internet Protocol Network, frame relay network, or an interconnected mixture of such networks such as an Internet or Intranet. One underlying problem with non-guaranteed packet networks is that transported packets are subject to varying loss and delays. Therefore, for real-time communications, a tradeoff exists among the quality of the service, the interactive delay, and the utilized bandwidth. This tradeoff is a function of the selected coding scheme, the packetization scheme, the redundancy of information packeted within the packets, the receiver buffer size, the bandwidth restrictions, and the transporting characteristics of the transporting network.
One technique for transporting real time communication between two parties over a packet switched network requires that both parties have access to multimedia computers. These computers must be coupled to the transporting network. The transporting network could be an Intranet, an Internet, a wide area network (WAN), a local area network (LAN), or other type of network utilizing technologies such as Asynchronous Transfer Mode (ATM), Frame Relay, Carrier Sense Multiple Access, Token Ring, or the like. As in the case for home personal computers (PCs), both parties to the communication may be connected to the network via telephone lines. These telephone lines are in communication with a local hub associated with a central office switch and a Network Service provider. As used herein, the term xe2x80x9chubxe2x80x9d refers to an access point of a communication infrastructure.
This communication technique however, has a number of disadvantages. For example, for a home-based PC connected to a network using an analog telephone line, the maximum bandwidth available depends on the condition of the line. Typically, this bandwidth will be no greater than approximately 3400 Hz. A known method for transmitting and receiving data at rates of up to 33.6 kbits/second over such a connection is described in Recommendation V.34, published by the International Telecommunication Union, Geneva, Switzerland.
Aside from a limited bandwidth, various delays inherent in the PC solution, such as sound card delays, modem delays, and other related delays are relatively high. Consequently, the PC-based communication technique is generally unattractive for real-time communication. As used herein, xe2x80x9creal-time communicationxe2x80x9d refers to real-time audio, video, or a combination of the two.
Another typical disadvantage of PC-based communication, particularly with respect to PC-based telephone communications, is that the communicating PC receiving the call generally needs to be running at the time the call is received. This may be feasible for a corporate PC connected to an Intranet. However, such a connection may be burdensome for a home based PC, since the home PC may have to tie up a phone line.
Another disadvantage is that a PC-based conversation is similar to conversing over a speakerphone. Hence, privacy of conversation may be lost. Communicating over a speakerphone may also present problems in a typical office environment having high ambient noise or having close working arrangements.
In addition, PC-based telephone systems often require powerful and complex voice encoders and therefore require a large amount of processing capability. Even if these powerful voice encoders run on a particularly powerful PC, the encoders may slow down the PC to a point where the advantage of document sharing decreases, since the remaining processing power may be insufficient for a reasonable interactive conversation. Consequently, a caller may have to use less sophisticated encoders, thereby degrading the quality of the call.
A general problem encountered in packet switched networks, however, is that the network may drop or lose data packets. Packets may also be delayed during transportation from the sender to the receiver. Therefore, some of the packets at a receiving destination will be missing and others will be xe2x80x9cjitteredxe2x80x9d and therefore arrive out of order.
In a packet switched network whose transporting characteristics vary relatively slowly, the immediate past transporting characteristics can be used to infer information about the immediate future transporting characteristics. The dynamic network transporting characteristics may be measured using such variables as packet loss, packet delay, packet burst loss, loss auto-correlation, bandwidth, and delay variation.
IP gateways, such as IP telephony receivers, may employ a configuration of computational buffers or jitter buffers to mask network-induced expansion and contraction of packet inter-arrival times. Although IP telephony transmitters may send packets with deterministic inter-departure times, IP networks such as the Internet will xe2x80x9cjitterxe2x80x9d (i.e., introduce delay variance) and lose packets as the packets are transported through some number of switches and routers before the packets arrive at the IP gateway, such as the IP telephony receiver. The greater the jitter buffer depth, the more jitter that the communication channel can mask.
If packet arrivals are highly skewed with respect to buffer depth, packets may be lost due to buffer overflow or buffer underflow. However, due to the interactive nature of real time communication over IP, particularly IP telephony, it is desirable to introduce as little jitter buffer latency as possible. Therefore, a buffer having a shallow depth is generally desired. IP telephony end-user quality of service is also degraded by packet loss introduced by the IP network itself. For example, an intermediate IP router in between the source and destination of the real-time communication may become temporarily overloaded, and as a result, will drop (i.e., delete) packets in response to the congestion. This packet loss causes audible clicks, pops, and gaps in a voice conversation, degrading the quality of the conversation.
Some packet loss may be masked through error-correction coding. Such error correction coding techniques may include frame replication (i.e., frame redundancy) or frame-based forward error correction (FEC). For example, related U.S. Pat. No. 5,870,412 entitled xe2x80x9cForward Error Correction System for Packet Based Real Time Mediaxe2x80x9d describes a forward error correction code scheme for transmission of real time media signals and is fully herein incorporated by reference and to which the reader is directed for additional details. One disadvantage of utilizing techniques such as redundancy or FEC, however, is that they may increase the amount of information required per data packet and therefore the amount of required bandwidth. There is, therefore, a general need for an IP gateway that can dynamically adjust receiving properties based, in part, on dynamic transporting characteristics while also attempting to optimize bandwidth.
The present invention provides a gateway for receiving a transported stream of data packets. The gateway comprises a buffer management device for receiving the data packets, unpacking the data packets, and forwarding a stream of data frames. The gateway also comprises a first jitter buffer for receiving the data frames from the buffer management device and buffering the data frames, and a second jitter buffer for receiving the data frames from the buffer management device and buffering the data frames. In addition, the gateway comprises a computationally-desirable jitter buffer selected from the first jitter buffer or the second jitter buffer by comparing a first jitter buffer quality and a second jitter buffer quality. Additionally, the gateway comprises a decoder for receiving buffered data frames from the computationally-desirable jitter buffer.
The present invention also provides a method for receiving a transported stream of data packets comprising the steps of receiving the data packets at a management module, and unpacking the data packets at the management module. The method also comprises the steps of forwarding a first stream of data frames to a first jitter buffer, and forwarding a second stream of data frames to a second jitter buffer. Moreover, the method comprises the steps of buffering the data frames at the first jitter buffer and the second jitter buffer, computing a first jitter buffer quality for the first jitter buffer, and computing a second jitter buffer quality for the second jitter buffer. The method further comprises the steps of selecting either the first or the second jitter buffer as a computationally-desirable jitter buffer based on the first and second jitter buffer qualities, and forwarding the buffered data frames from the computationally-desirable buffer to a decoder.
In addition, the present invention provides a receiver for receiving a transported stream of data packets. The receiver comprises a buffer management device for receiving the data packets, unpacking the data packets and forwarding a stream of data frames. The receiver also comprises a buffer array having a computationally-desirable buffer and a plurality of virtual buffers, with each buffer of the buffer array receiving and buffering the data frames from the buffer management device. The receiver further comprises a decoder for receiving buffered data frames from the computationally-desirable buffer.